package com.yyxk.thousandtime.util;

import android.content.Context;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.Button;


import com.yyxk.thousandtime.R;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * ----------Dragon be here!----------/
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃神兽保佑
 * 　　　　┃　　　┃代码无BUG！
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━神兽出没━━━━━━
 * 项目名称：WheelMedical
 * 包名:com.yyxk.wheelmedical.util
 * 类描述：
 * 创建人：Random
 * 创建时间：15:53
 * 修改人：Random
 * 修改时间：15:53
 * 修改备注：
 */
public class DialogFactory {
    private ViewHolder holder;
    private Context context;
    private OnBtnClickListener onBtnClickListener;
    public DialogFactory(Context context) {
        this.context = context;
    }


    public void setOnBtnClickListener(OnBtnClickListener onBtnClickListener) {
        this.onBtnClickListener = onBtnClickListener;
    }

    public void setSureBtnText(String name){
        if(holder!=null) {
            holder.mainDialogSure.setText(name);
        }

    }
    public void setCancleBtnText(String name){
        if(holder!=null) {
            holder.mainDialogCancle.setText(name);
        }
    }

    public void setOneButton(boolean one){
        if(one&&holder!=null){
            holder.mainDialogCancle.setVisibility(View.GONE);
        }
    }
    /**
     * 创建基础Dialog
     * @param title
     * @return
     */
    public AlertDialog createDialog(String title){
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage(title);
        builder.setCancelable(false);
        View view = LayoutInflater.from(context).inflate(R.layout.text_alert_dialog, null);//dialog的自定义按钮
        builder.setView(view);
        AlertDialog dialog = builder.create();
        Window windowDialog = dialog.getWindow();//获取Window，以便加载动画效果
        holder = new ViewHolder(view);
        textDialogListener();
        return dialog;
    }

    /**
     * Dialog的监听器
     */
    private void textDialogListener() {
        //设置取消按钮点击事件
        holder.mainDialogCancle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onBtnClickListener.onCancleClick(view);
            }
        });
        //设置确定按钮点击事件
        holder.mainDialogSure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onBtnClickListener.onSureClick(view);
            }
        });
    }
    /**
     * AlertDialog的点击按钮ViewHolder
     */
    static class ViewHolder {
        @BindView(R.id.main_dialog_cancle)
        Button mainDialogCancle;
        @BindView(R.id.main_dialog_sure)
        Button mainDialogSure;

        ViewHolder(View view) {
            ButterKnife.bind(this, view);
        }
    }

    public interface OnBtnClickListener{
        void onSureClick(View view);
        void onCancleClick(View view);
    }

}
